import Schema from "validate";
//  表单校验时，校验规则中没有出现过某个属性，
//那么校验的数据就会被移除掉这个属性
// 解决方法:// 1.校验完后，在传递给后台的数据中 添加 id
//2.修改校验规则移除 属性 的默认行头
const formInfo = new Schema({
  point: {
    type: String,
    required: true,
    message: '街区不能为空！'
  },
  building: {
    type: String,
    required: true,
    message: '楼号不能为空！'
  },
  room: {
    type: String,
    required: true,
    message: '房间号不能为空！'
  },
  name: {
    type: String,
    required: true,
    message: '名字不能为空！'
  },
  gender: {
    type: Number,
    required: true,
    message: '性别不能为空！'
  },
  mobile: {
    type: String,
    required: true,
    match: /^1[3456789]\d{9}$/,
    message: '手机号格式不正确！'
  },
  idcardFrontUrl: {
    type: String,
    required: true,
    message: '人像面不能为空！'
  },
  idcardBackUrl: {
    type: String,
    required: true,
    message: '国徽面不能为空！'
  },
},
  //在规则的后面配置行为，开启 strip: false 就不会自动移除属性
  { strip: false }
)
Page({
  data: {
    id: '',
    idcardFrontUrl: '',
    idcardBackUrl: '',
    point: '',
    building: '',
    room: '',
    name: 'zs',//业主姓名
    gender: 0,
    mobile: '15555937360', // 手机号
    status: 0,
  },
  async onLoad({ point, building, room, id }) {
    if (id) {
      wx.setNavigationBarTitle({
        title: '编辑房屋信息'
      })
      const res = await wx.http({
        url: `/room/${id}`
      })
      console.log(res);
      this.setData({ ...res.data })
    } else {
      this.setData({ point, building, room })
    }

  },
  // 上传图片功能
  getchooseImage(e) {
    console.log('eeeeeeeeee', e);
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      success: (res) => {
        console.log(res);
        console.log(res.tempFiles[0].tempFilePath);
        // this.setData({idcardFrontUrl:res.tempFiles[0].tempFilePath})
        wx.uploadFile({
          url: wx.http.baseURL + '/upload',
          filePath: res.tempFiles[0].tempFilePath,
          name: 'file',
          header: {
            Authorization: `Bearer ${getApp().token}`
          },
          success: (res) => {
            console.log(res);
            const data = JSON.parse(res.data)
            console.log(data);
            //提示信息
            wx.showToast({
              title: '上传图片成功',
              icon: 'success'
            })
            // if(e.mark.type === 'idcardFrontUrl'){
            //     this.setData({idcardFrontUrl:data.data.url})
            //   }else{
            //     this.setData({idcardBackUrl:data.data.url})
            //   }
            this.setData({ [e.mark.type]: data.data.url })
          }
        })
      }
    })
  },
  // getchooseImg(){
  //   wx.chooseMedia({
  //     count:1,
  //     mediaType:['image'],
  //     success:(res) => {
  //       console.log(res);
  //       console.log(res.tempFiles[0].tempFilePath);
  //       // this.setData({idcardBackUrl:res.tempFiles[0].tempFilePath})
  //       wx.uploadFile({
  //         url:wx.http.baseURL + '/upload',
  //         filePath:res.tempFiles[0].tempFilePath,
  //         name:'file',
  //         header:{
  //           Authorization:`Bearer ${getApp().token}`
  //         },
  //         success:(res)=>{
  //           console.log(res);
  //           const data = JSON.parse(res.data)
  //           console.log(data);
  //           //提示信息
  //          wx.showToast({
  //            title:'上传图片成功',
  //            icon:'success'
  //           })
  //         this.setData({idcardBackUrl:data.data.url})
  //         }
  //       })
  //     }
  //   })
  // },
  async goList() {
    // 检验功能-// 后台要求，如果传过来的属性中，有id(哪怕为空),也算修改
    const { idcardFrontUrl, idcardBackUrl, point, building, room, name, gender, mobile } = this.data
    const data = { idcardFrontUrl, idcardBackUrl, point, building, room, name, gender, mobile }
    const errors = formInfo.validate(data)
    if (errors.length) {
      wx.showToast({
        title: errors[0].message,
        icon: 'error'
      })
      return
    }
    // 如果有id,就是编辑房屋信息
    if (this.data.id) {
      //编辑功能 - 发请求到后台要有id的属性
      data.id = this.data.id
    } else {
      // 新增功能-- 发请求到后台不能有id的属性，哪怕为空字符串都不行
    }
    const res = await wx.http({
      url: '/room',
      method: 'post',
      data,
    })
    console.log(res);
    //提示信息
    wx.showToast({
      title: '操作成功',
      icon: 'success'
    })
    // 跳转
    setTimeout(() => {
      wx.reLaunch({
        url: '/house_pkg/pages/list/index',
      })
    }, 1500);
  }
  ,
  // x号点击时间，删除上传的图片
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    // const type = ev.mark?.type
    // this.setData({ [type]: '' })
    this.setData({ [ev.mark.type]: '' })
  },
})
